graph TD
    %% 组件初始化流程
    A[组件创建] --> B[初始化数据状态]
    B --> C[调用getCarouselList]
    
    %% 数据获取流程
    C --> D{检查loading状态}
    D -->|正在加载| E[返回]
    D -->|未加载| F[设置loading=true]
    
    F --> G[发起API请求]
    G --> H{检查响应}
    
    %% 数据处理流程
    H -->|成功| I[处理轮播数据]
    I --> J[过滤active状态]
    J --> K[排序处理]
    K --> L[转换数据格式]
    L --> M[更新banners数组]
    
    H -->|失败| N[设置错误信息]
    N --> AC[显示错误提示]
    
    %% 图片加载流程
    O[图片加载事件] --> P[添加到imagesLoaded]
    P --> Q{是否全部加载?}
    Q -->|是| R[设置loading=false]
    Q -->|否| S[等待其他图片]
    
    %% 用户交互流程
    T[轮播切换] --> U[更新currentIndex]
    V[点击指示器] --> W[切换到目标轮播]
    
    %% 错误处理
    X[图片加载失败] --> Y[记录错误日志]
    
    %% 样式处理
    M --> Z[应用过渡动画]
    Z --> AA[更新指示器状态]
    
    %% 状态完成
    R --> AB[展示完整轮播]
    N --> AC[显示错误提示]

    classDef process fill:#f9f,stroke:#333,stroke-width:2px
    classDef decision fill:#ff9,stroke:#333,stroke-width:2px
    classDef state fill:#9f9,stroke:#333,stroke-width:2px
    
    class A,B,C,F,G,I,J,K,L,M process
    class D,H,Q decision
    class R,AB,AC state